﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;
using System.Diagnostics;


  public static  class CallSystemLib
    {

        #region 启动指定可执行程序
        /// <summary>
        /// 启动指定可执行程序
        /// </summary>
        /// <param name="exeName">文件名或文件路径</param>
        /// <param name="operType">打开类型：
        /// 0: 隐藏, 并且任务栏也没有最小化图标
        /// 1: 用最近的大小和位置显示, 激活  
        /// 2: 最小化, 激活  
        /// 3: 最大化, 激活  
        /// 4: 用最近的大小和位置显示, 不激活  
        /// 5: 同 1  
        /// 6: 最小化, 不激活  
        /// 7: 同 3  
        /// 8: 同 3  
        /// 9: 同 1  
        /// 10: 同 1 
        /// </param>
        /// <returns>调用方法：直接调用该方法，并给它传入参数</returns>

        [DllImport("kernel32.dll")]
        public static extern int WinExec(string exeName, int operType); 
        #endregion

        #region 关闭指定程序
        /// <summary>
        /// 关闭指定程序
        /// </summary>
        /// <param name="appName">指定进程名</param>
        public static void CloseAPP(string appName)
        {
            Process[] allProgresse = System.Diagnostics.Process.GetProcesses();//获取当前所有程序进程
            foreach (Process closeProgress in allProgresse)//遍历进程并找到指定程序进行kill
            {
                if (closeProgress.ProcessName.Equals(appName))
                {
                    closeProgress.Kill();
                    closeProgress.WaitForExit();
                    //break;
                    return;
                }
            }
        } 
        #endregion
      
    }
